package net.zxteam.reusable.java.diff;

import java.io.File;
import java.io.IOException;

public abstract class DiffFolder {

	public static DiffFolder newInstance() {
		
		return new DiffFolderImpl();
	}
	
	public abstract void setHeadFolder(File folder);

	public abstract void setSubordinateFolder(File folder);
	
	public final String getIgnoreMask() { synchronized (this) { return _ignoreMask; }}
	public final void setIgnoreMask(String ignoreMask) { synchronized (this) { _ignoreMask = ignoreMask; }}
	
	public final DiffFolderComparator getComparator() { synchronized (this) { return _comparator; }}
	public final void setComparator(DiffFolderComparator comparator) { synchronized (this) { _comparator = comparator; }}
	
	public abstract DiffFolderInfo[] compare() throws IOException;
	
	private DiffFolderComparator _comparator;
	private String _ignoreMask;
}
